
#pragma once
#include "stdafx.h"

class CWicPixelFormatInfo : public QvObject
{
    //==============================================================================
    // IWICComponentInfo
    //==============================================================================
public:
    CWicPixelFormatInfo(CWicComponentInfo *pComponentInfo);
    CWicPixelFormatInfo(CWicPixelFormatInfo const &);
    virtual ~CWicPixelFormatInfo(void);
    CWicPixelFormatInfo& operator=(CWicPixelFormatInfo const &);

    //==============================================================================
    // IWICComponentInfo
    //==============================================================================
public:
    virtual HRESULT GetFormatGUID(/* [out] */ GUID *pFormat);

    virtual HRESULT GetColorContext(/* [out] */ IWICColorContext **ppIColorContext);

    virtual HRESULT GetBitsPerPixel(/* [out] */ UINT *puiBitsPerPixel);

    virtual HRESULT GetChannelCount(/* [out] */ UINT *puiChannelCount);

    virtual HRESULT GetChannelMask(
        /* [in] */ UINT uiChannelIndex,
        /* [in] */ UINT cbMaskBuffer,
        /* [size_is][unique][out][in] */ BYTE *pbMaskBuffer,
        /* [out] */ UINT *pcbActual);

    //==============================================================================
    // IWICComponentInfo
    //==============================================================================
public:
    virtual WICComponentType GetComponentType();

    virtual HRESULT GetCLSID(/* [out] */ CLSID *pclsid);

    virtual DWORD GetSigningStatus();

    virtual UINT GetAuthor(UINT cchAuthor, WCHAR *wzAuthor);

    virtual HRESULT GetVendorGUID(/* [out] */ GUID *pguidVendor);

    virtual UINT GetVersion(UINT cchVersion, WCHAR *wzVersion);

    virtual UINT GetSpecVersion(UINT cchSpecVersion, WCHAR *wzSpecVersion);

    virtual UINT GetFriendlyName(UINT cchFriendlyName, WCHAR *wzFriendlyName);

private:
    IWICPixelFormatInfo  *m_pIWICPixelFormatInfo;
};

